hvm: Fix intra-vga-mem mmio in stdvga.c
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 23 Jul 2008 12:31:57 +0000 (13:31 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 23 Jul 2008 12:31:57 +0000 (13:31 +0100)
commit6de959a1f6dd5ef22036f1a1d74cdcfce25d327c
treec2425bd534c97fc8f2da126deab8f39a2e0de0e9
parent9cd4e059aee08dfa0d853a5a0e8471bf49b8b752
hvm: Fix intra-vga-mem mmio in stdvga.c

The current stdvga code never checks if the copy_from/to_guest calls
fail, and thus silenty fails if both sides of an IOREQ_COPY points
into mmio space. This patch fixes this and makes the code correctly
handle intra-vga-mem copies, as well as log & turn off caching if some
more "exotic" type of mmio (say, copy from vga mem to some other
device's iomem), so that such mmio reqs will fall through to regular
ioemu where they can hopefully be handled correctly.

In practice, this patch fixes a number of graphical glitches for
guests running in standard vga mode, including a corrupted OS/2 boot
graphic.

Signed-off-by: Trolle Selander <trolle.selander@eu.citrix.com>
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
xen/arch/x86/hvm/stdvga.c